#ifdef WITH_OPENGL
#pragma once
#include "opengl.h"
#include <map>

namespace krryn{
namespace system_imp{
	/// OpenGL state management object, keeps track of which 
	/// states we need to enable / disable
	class context_opengl{
	public:
		context_opengl();
		~context_opengl();

		void enable_texture(size_t a_Index);
		void disable_texture(size_t a_Index);

		void enable(GLuint a_State);
		void disable(GLuint a_State);
	private:
		std::map<GLuint, bool> m_States;
		bool *m_TexturesEnabled;
	};
}
}

#endif